package com.zxq.lawenf.pojo;

import java.util.Date;
import java.util.Map;
import java.util.TreeMap;

import com.zxq.common.pojo.BasePojo;
import com.zxq.users.pojo.AUsers;

/**
 * 示例代码中的案件表
 * ~类名为表名,去掉下划线;
 * ~下划线隔开的单词要采用驼峰标识
 * @author 章晓琦
 */
public class ACase extends BasePojo<ACase>
{
	private int id;
	private int usersId;
	private int depUseId;
	private int dirUseId;
	private String name;
	private String content;
	private String depAdmNote;
	private String dirAdmNote;
	private byte appType;
	private byte status;
	private Date createTime;
	private Date updateTime;
	private Date pubTime;
	
	private byte souStatus ; 
	
	/*--字符串表示--*/
	private String statusStr ; 
	private String appTypeStr ;
	private String souStatusStr ;
	
	/*--关联关系表示--*/
	private AUsers users ;
	private AUsers depUsers;
	private AUsers dirUsers ;
	
	/* 存储所有状态的容器 */
	private Map<String,String> enumsMap = new TreeMap<String, String>();

	/**
	 * 获取此表相关的所有枚举值
	 * @return	键为枚举的变量名+枚举的值; 值为枚举的名字
	 * 			如:key:STATUS_ENABLE-1,值:启用
	 */
	public Map<String, String> getEnumsMap()
	{
		// 根据状态值获取字符串描述
		ACaseEnum[] enums = ACaseEnum.values();
		for (int i = 0; i < enums.length; i++)
		{
			ACaseEnum enumTemp = enums[i];
			String key = enumTemp.toString() ; 
			enumsMap.put(key + "-" + enumTemp.getStatus() + "", enumTemp.getName());
		}
		return enumsMap;
	}
	
	/**
	 * 获取状态的字符串描述
	 * @return	此状态对应的字符串描述
	 */
	public String getStatusStr()
	{
		// 根据状态值获取字符串描述
		ACaseEnum[] enums = ACaseEnum.values();
		for (int i = 0; i < enums.length; i++)
		{
			ACaseEnum enumTemp = enums[i];
			if (enumTemp.toString().startsWith("STATUS_"))
			{
				// 表示是状态的标识
				if (enumTemp.getStatus() == this.getStatus())
				{
					this.statusStr = enumTemp.getName();
					break;
				}
			}
		}
		return statusStr;
	}
	
	/**
	 * 获取状态的字符串描述
	 * @return	此状态对应的字符串描述
	 */
	public String getSouStatusStr()
	{
		// 根据状态值获取字符串描述
		ACaseEnum[] enums = ACaseEnum.values();
		for (int i = 0; i < enums.length; i++)
		{
			ACaseEnum enumTemp = enums[i];
			if (enumTemp.toString().startsWith("STATUS_"))
			{
				// 表示是状态的标识
				if (enumTemp.getStatus() == this.getSouStatus())
				{
					this.souStatusStr = enumTemp.getName();
					break;
				}
			}
		}
		return souStatusStr;
	}
	
	public String getAppTypeStr()
	{
		// 根据状态值获取字符串描述
		ACaseEnum[] enums = ACaseEnum.values();
		for (int i = 0; i < enums.length; i++)
		{
			ACaseEnum enumTemp = enums[i];
			if (enumTemp.toString().startsWith("APPTYPE_"))
			{
				// 表示是状态的标识
				if (enumTemp.getStatus() == this.getAppType())
				{
					this.appTypeStr = enumTemp.getName();
					break;
				}
			}
		}
		return appTypeStr;
	}

	public int getId()
	{
		return id;
	}

	public void setId(int id)
	{
		this.id = id;
	}

	public int getUsersId()
	{
		return usersId;
	}

	public void setUsersId(int usersId)
	{
		this.usersId = usersId;
	}


	public String getName()
	{
		return name;
	}

	public void setName(String name)
	{
		this.name = name;
	}

	public String getContent()
	{
		return content;
	}

	public void setContent(String content)
	{
		this.content = content;
	}

	public String getDepAdmNote()
	{
		return depAdmNote;
	}

	public void setDepAdmNote(String depAdmNote)
	{
		this.depAdmNote = depAdmNote;
	}

	public String getDirAdmNote()
	{
		return dirAdmNote;
	}

	public void setDirAdmNote(String dirAdmNote)
	{
		this.dirAdmNote = dirAdmNote;
	}

	public byte getAppType()
	{
		return appType;
	}

	public void setAppType(byte appType)
	{
		this.appType = appType;
	}

	public byte getStatus()
	{
		return status;
	}

	public void setStatus(byte status)
	{
		this.status = status;
	}

	public Date getCreateTime()
	{
		return createTime;
	}

	public void setCreateTime(Date createTime)
	{
		this.createTime = createTime;
	}

	public Date getUpdateTime()
	{
		return updateTime;
	}

	public void setUpdateTime(Date updateTime)
	{
		this.updateTime = updateTime;
	}

	public Date getPubTime()
	{
		return pubTime;
	}

	public void setPubTime(Date pubTime)
	{
		this.pubTime = pubTime;
	}

	public int getDepUseId()
	{
		return depUseId;
	}

	public void setDepUseId(int depUseId)
	{
		this.depUseId = depUseId;
	}

	public int getDirUseId()
	{
		return dirUseId;
	}

	public void setDirUseId(int dirUseId)
	{
		this.dirUseId = dirUseId;
	}

	public AUsers getDepUsers()
	{
		return depUsers;
	}

	public void setDepUsers(AUsers depUsers)
	{
		this.depUsers = depUsers;
	}

	public AUsers getDirUsers()
	{
		return dirUsers;
	}

	public void setDirUsers(AUsers dirUsers)
	{
		this.dirUsers = dirUsers;
	}

	public AUsers getUsers()
	{
		return users;
	}

	public void setUsers(AUsers users)
	{
		this.users = users;
	}

	public byte getSouStatus()
	{
		return souStatus;
	}

	public void setSouStatus(byte souStatus)
	{
		this.souStatus = souStatus;
	}
}
